[IA64] Fix a bug in INIT handler
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Nov 2006 05:25:21 +0000 (22:25 -0700)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Nov 2006 05:25:21 +0000 (22:25 -0700)
commit2edeb59f757f81ea390acb20a98e500e438babb8
treef278f33af95349420b3df57e211b16771c23e36c
parent0dd459c430086a9322f926b8a03ee5675aa21154
[IA64] Fix a bug in INIT handler

I found a bug in INIT handler.  This bug sometimes occurs on
the following conditions.
 1. Create a domVTi
 2. Run a user program on domVTi
 3. Push to INIT switch

When this bug occurs, Xen shows error messages.

This bug occurs if a vCPU of domVTi runs on a pCPU where its
INIT interruption have not occurred yet.  It is because
"arch._thread.on_ustack" member in vcpu structure is always
zero and, accordingly, ar.bspstore doesn't switch to Xen RBS
in the MINSTATE_START_SAVE_MIN_PHYS.

This patch adds a checking of ipsr.vm bit into the
MINSTATE_START_SAVE_MIN_PHYS for domVTi.  If ipsr.vm bit is 1,
ar.bspstore is switched to Xen RBS.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
xen/arch/ia64/linux-xen/minstate.h